rendernode: Fix glyph serialization
authorMatthias Clasen <mclasen@redhat.com>
Tue, 2 Mar 2021 16:32:29 +0000 (11:32 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 2 Mar 2021 16:32:29 +0000 (11:32 -0500)
We serializing to a string of ASCII, we need to
escape some chars, such as '\' and '"'.

Fixes: #3710
gsk/gskrendernodeparser.c

index c53597732d56e477a84a884583595f42c1da9281..8d72f94aa19ee5cedcd5af3038ce8d921869a394 100644 (file)
@@ -2338,7 +2338,18 @@ gsk_text_node_serialize_glyphs (GskRenderNode *node,
                   glyphs[i].geometry.y_offset == 0 &&
                   glyphs[i].attr.is_cluster_start)
                 {
-                  g_string_append_c (str, j + MIN_ASCII_GLYPH);
+                  switch (j + MIN_ASCII_GLYPH)
+                    {
+                      case '\\':
+                        g_string_append (str, "\\\\");
+                        break;
+                      case '"':
+                        g_string_append (str, "\\\"");
+                        break;
+                      default:
+                        g_string_append_c (str, j + MIN_ASCII_GLYPH);
+                        break;
+                    }
                   break;
                 }
               else if (glyphs[i].glyph == ascii->glyphs[j].glyph)